package com.hospital.workstation.domain.vo;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.hospital.common.annotation.ExcelDictFormat;
import com.hospital.common.convert.ExcelDictConvert;
import com.hospital.workstation.domain.bo.MedicalRecordBo;
import lombok.Data;

import java.util.Date;
import java.util.List;


/**
 * 药历首页信息视图对象 hospital_medication_record
 *
 * @author whb
 * @date 2023-02-13
 */
@Data
@ExcelIgnoreUnannotated
public class MedicationRecordVo {

    private static final long serialVersionUID = 1L;

    /**
     * 病历ID
     */
    @ExcelProperty(value = "病历ID")
    private Long id;

    /**
     * 病历号
     */
    @ExcelProperty(value = "病历号")
    private Integer medicalRecordNo;

    /**
     * 主诉
     */
    @ExcelProperty(value = "主诉")
    private String selfReported;

    /**
     * 有无现病史（0无 1有）
     */
    @ExcelProperty(value = "有无现病史", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "0=无,1=有")
    private String isHaveMedicalHistoryNow;

    /**
     * 现病史
     */
    @ExcelProperty(value = "现病史")
    private String medicalHistoryNow;

    /**
     * 既往病史
     */
    @ExcelProperty(value = "既往病史")
    private String medicalHistoryBefore;

    /**
     * 有无过敏史（0无 1有）
     */
    @ExcelProperty(value = "有无过敏史", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "0=无,1=有")
    private String isHaveAllergy;

    /**
     * 怀疑药物/食物名称
     */
    @ExcelProperty(value = "怀疑药物/食物名称")
    private String doubtPillsOrFoodName;

    /**
     * 主要ADR临床表现
     */
    @ExcelProperty(value = "主要ADR临床表现")
    private String adrClinicFeature;

    /**
     * 过敏史处理措施及结果（0未停药 1停药后缓解 2对症治疗后缓解 3对症治疗后未缓解 4未再次使用 5再次使用又出现 6其他）
     */
    @ExcelProperty(value = "过敏史处理措施及结果", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "0=未停药,1=停药后缓解,2=对症治疗后缓解,3=对症治疗后未缓解,4=未再次使用,5=再次使用又出现,6=其他")
    private String disposeAndResult;

    /**
     * 有无有其它过敏（0无 1有）
     */
    @ExcelProperty(value = "有无其它过敏史", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "0=无,1=有")
    private String isOtherDisposeAndResult;

    /**
     * 其他处理措施及结果
     */
    @ExcelProperty(value = "其他处理措施及结果")
    private String otherDisposeAndResult;

    /**
     * 家族史
     */
    @ExcelProperty(value = "家族史")
    private String familyHistory;

    /**
     * 个人史
     */
    @ExcelProperty(value = "个人史")
    private String personHistory;

    /**
     * 入院诊断-西医
     */
    @ExcelProperty(value = "入院诊断-西医")
    private String admittingDiagnosisWestern;

    /**
     * 入院药学评估ID
     */
    @ExcelProperty(value = "入院药学评估ID")
    private Long pharmacyAssessId;

    /**
     * 药物监护计划
     */
    @ExcelProperty(value = "药物监护计划")
    private String medicalGuardianSchedule;

    /**
     * 有无不良嗜好（0无 1有）
     */
    @ExcelProperty(value = "有无不良嗜好", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "0=无,1=有")
    private String isHaveBadHobby;

    /**
     * 有无饮酒（0无 1有）
     */
    @ExcelProperty(value = "有无饮酒", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "0=无,1=有")
    private String isWine;

    /**
     * 饮酒年数
     */
    @ExcelProperty(value = "饮酒年数")
    private String wineYear;

    /**
     * 每天饮酒两数
     */
    @ExcelProperty(value = "每天饮酒两数")
    private String wineAmountPerDay;

    /**
     * 有无抽烟（0无 1有）
     */
    @ExcelProperty(value = "有无抽烟", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "0=无,1=有")
    private String isSmoke;

    /**
     * 抽烟年数
     */
    @ExcelProperty(value = "抽烟年数")
    private String smokeYear;

    /**
     * 每天抽烟支数
     */
    @ExcelProperty(value = "每天抽烟支数")
    private String smokeAmountPerDay;

    /**
     * 有无不良的饮食习惯（0无 1有）
     */
    @ExcelProperty(value = "有无不良的饮食习惯", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "0=无,1=有")
    private String isEat;

    /**
     * 不良饮食习惯
     */
    @ExcelProperty(value = "不良饮食习惯")
    private String eatBadHobby;

    /**
     * 有无有其它不良嗜好（0无 1有）
     */
    @ExcelProperty(value = "有无有其它不良嗜好", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "0=无,1=有")
    private String isOther;

    /**
     * 其它不良嗜好
     */
    @ExcelProperty(value = "其它不良嗜好")
    private String otherBadHobby;

    /**
     * 签名人
     */
    @ExcelProperty(value = "签名人")
    private String signer;

    /**
     * 患者基本信息视图对象
     */
    private PatientBaseInfoVo patientBaseInfoVo;

    /**
     * 现病史用药汇总集合
     */
    private List<MedicalRecordVo> nowMedicalRecordVoList;

    /**
     * 既往病史用药汇总集合
     */
    private List<MedicalRecordVo> beforeMedicalRecordVoList;

    /**
     * 初始药物诊疗方案汇总集合
     */
    private List<MedicalRecordVo> initalMedicalRecordVoList;

    /**
     * 中医入院诊断集合
     */
    private List<TraditionalDiagnosisVo> traditionalDiagnosisVoList;

    /**
     * 初始饮片列表
     */
    private List<MedicalRecordVo> initTraditionalMedicalList;
}
